import Cookies from 'js-cookie'

// Cookie的key值
export const Key = {
  token: 'token', // 访问令牌在 cookie 的 key值 ++
  userInfo: 'userInfo', // 用户信息 在cookie 中的key值 ++
  refreshToken: 'refreshToken' // 刷新令牌 在cookie 中的key值 ++
}

class CookieClass {
  constructor() {
    // .env.production / .env.development 中配置
    this.domain = process.env.VUE_APP_COOKIE_DOMAIN // 域名
    this.expireTime = 15 // cookie 有效时长 单位 天
  }

  set(key, value, expires, path = '/') {
    CookieClass.checkKey(key)
    Cookies.set(key, value, { expires: expires || this.expireTime, path: path, domain: this.domain })
  }

  get(key) {
    CookieClass.checkKey(key)
    return Cookies.get(key)
  }

  remove(key, path = '/') {
    CookieClass.checkKey(key)
    Cookies.remove(key, { path: path, domain: this.domain })
  }

  getAll() {
    Cookies.get()
  }

  static checkKey(key) {
    if (!key) {
      throw new Error('没有找到key。')
    }
    if (typeof key === 'object') {
      throw new Error('key不能是一个对象。')
    }
  }
}

// 导出
export const PcCookie = new CookieClass()
